package com.zeekr.myroomtest.room

import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.Query
import androidx.room.Update
import kotlinx.coroutines.flow.Flow

@Dao
interface ItemDao {
    //@Insert(onConflict = OnConflictStrategy.IGNORE) : 参数 OnConflict 用于告知 Room 在发生冲突时应该执行的操作。OnConflictStrategy.IGNORE 策略会忽略主键已存在于数据库中的新商品。
    @Insert
    suspend fun insert(item: Item)

    @Update
    suspend fun update(item: Item)

    @Delete
    suspend fun delete(item: Item): Int

    @Query("DELETE from item")
    suspend fun deleteAll(): Int

    @Query("SELECT * from item WHERE id = :id")
    suspend fun getItem(id: Int): Item


    @Query("SELECT * from item ORDER BY name ASC")
    suspend fun getItems(): List<Item>
}